#ifndef _W6100_HARD_INIT_H_
#define _W6100_HARD_INIT_H_
#include "stm32f4xx.h"

// #define CLK_PORT GPIOB
// #define MOSI_PORT GPIOB
// #define MISO_PORT GPIOB
// #define CLK_PIN GPIO_Pin_3
// #define MOSI_PIN GPIO_Pin_5
// #define MISO_PIN GPIO_Pin_4

/* 电平原子操作 */
// #define CLK_H() GPIO_SetBits(CLK_PORT, CLK_PIN)
// #define CLK_L() GPIO_ResetBits(CLK_PORT, CLK_PIN)
// #define MOSI_H() GPIO_SetBits(MOSI_PORT, MOSI_PIN)
// #define MOSI_L() GPIO_ResetBits(MOSI_PORT, MOSI_PIN)
// #define MISO_READ() GPIO_ReadInputDataBit(MISO_PORT, MISO_PIN)

#define W6100_CS_L() GPIO_ResetBits(GPIOG, GPIO_Pin_13)
#define W6100_CS_H() GPIO_SetBits(GPIOG, GPIO_Pin_13)
#define W6100_RST_L() GPIO_ResetBits(GPIOG, GPIO_Pin_14)
#define W6100_RST_H() GPIO_SetBits(GPIOG, GPIO_Pin_14)
#define W6100_INT_PIN GPIO_ReadInputDataBit(GPIOG, GPIO_Pin_15)
void w6100_comm_interface_init(void);

void W6100_SPI1_Init(void);

uint8_t W6100_SPI1_RW(uint8_t byte);

void W6100_CS_RST_INT_Init(void);

// void W6100_SPI_hard_init(void);

// void W6100_spi_gpio_init(void);
// void W6100_SPI_Config(void);

// uint8_t W6100_SPI_RW(uint8_t tx);

// void softSPI_Init(void);
// uint8_t softSPI_RW(uint8_t tx);

// static void spi_delay(void);

#endif // !_W6100_HARD_INIT_H_
